顶级窗体示例

若要获取示例和示例的安装说明,请参见下文:

  • 在 Visual Studio“帮助”菜单上单击“示例”

    有关更多信息,请参见定位示例文件

  • 示例的最新版本和完整列表可以从 Visual Studio 2008 示例网站获取。

  • 还可以在计算机的硬盘上查找示例。默认情况下,示例和自述文件将复制到 \Program Files\Visual Studio 9\Samples\ 下的一个文件夹中。对于 Visual Studio 速成版,所有示例都位于 Internet 上。

运行此示例

  1. 按 F5。

  2. 使用“文件”菜单上的“新建”命令创建多个文档窗口,并验证所有文档是否都显示在任务栏中。

  3. 使用“任务管理器”验证该应用程序仅运行一个进程。

演示

许多基于文档的应用程序支持多个窗口,每个打开的文档都有一个窗口,在任务栏中显示。可以使用 Alt+Tab 组合键在这些文档之间切换,但没有在单独进程中加载各个文档产生的开销。该示例实现此行为。

该应用程序的启动对象为名为 FormsManager 的类中的 Sub Main 方法。Main 方法通过调用 FormsManager 类的 NewForm 方法创建一个新窗体实例,再将新窗体添加到 List 对象。创建了第一个窗体后,此代码将调用 Application..::.Run 以启动应用程序主线程,以使关闭第一个窗体时不会关闭此进程。每个文档窗体公开一个“新建”菜单项。单击此菜单项将再次调用 NewForm 方法,这会打开一个新文档窗体,正如加载应用程序时 Sub Main 的操作一样。

每个窗体还提供“关闭”“退出”菜单项。选择“关闭”可以启动关闭进程。每个窗体都有一个 Closing 事件,此事件允许窗体的代码检查文档内容是否已被修改,如果已修改,将询问用户是否保存此修改。

如果试图通过关闭窗体或退出应用程序来关闭已更改的文档,将出现一个对话框,要求您保存窗体的内容。如果单击“是”,代码将调用此窗体的 Save 方法并关闭此窗体。如果单击“否”,此窗体将直接关闭。如果单击“取消”,此窗体将不会关闭,并会引发一个自定义事件,指示此应用程序停止关闭。该应用程序不会实际执行任何文件 I/O 以保存此文件。